package list01;
/*
   我们目前写的类有哪几种？
   1.实体类 ------>抽取通用 属性 方法 构造器 -----> javabean
   2.跟业务逻辑操作相关的类----->类似以前面向过程 需要完成某些功能的类
 */
import java.util.ArrayList;
public class ArrayListUse01 {
    public static void main(String[] args) {
        //数组----->装数据一个容器----->引用数据类型
        int[] arrayInts = new int[3];
        //增删改查
        //增: 添加数据
        arrayInts[0] = 10;
        arrayInts[1] = 55;
        arrayInts[2] = 66;

        //删：删除数据
        //数组里面没有明确删除的功能
        arrayInts[1] = 0;//伪删除
        //改：修改数据
        arrayInts[2] = 99;
        //查：查询 查找数据
        //打印输出 看结果

        for (int i = 0; i < arrayInts.length; i++) {
            System.out.println(arrayInts[i]);
        }
        //1.数组的长度是固定的 不好扩充
        //2.数据类型固定 只允许装一种 ----》
        // 不是缺点  ---》集合也会建议 容器里面 装固定数据类型

        System.out.println("=========================");
        //java 集合框架
        //ArrayList -----> 数组列表
        //引用数据
        ArrayList list = new ArrayList();
        //增加
        list.add("张三");
        list.add("李四");
        list.add(true);
        list.add(new Student());
        System.out.println("增加：" + list);

        //通过下标增加
        //数组下标越界异常  不能跳跃添加数据 可以往后最后添加
//        list.add(5,"王五");
        //添加到最后一个
        list.add(list.size(), "王五");
        System.out.println("添加到最后一个:" + list);

        list.add(0, "王五123");
        System.out.println("添加到第一个" + list);

        //删除
        list.remove(true);
        list.remove("张三");
        System.out.println("删除两个：" + list);

        //通过下标去删除
        list.remove(list.size() - 1);
        System.out.println("通过下标删除最后一个:" + list);
        list.remove(0);
        System.out.println("通过下标删除第一个:" + list);

        //修改  set(原来数据的下标 index,新数据的值)
        list.set(1, "李四666");
        //所以 ArrayList 底层其实是一个 数组 -----》更高级的动态数组
        System.out.println(list);

        //indexOf方法 传入list集合里面的数据值 返回 它的下标
        //没有 没有返回 -1
        int index = list.indexOf("李四666");
        System.out.println(index);

        //list.size() ----->集合的大小 长度
        for (int i = 0; i < list.size(); i++) {
            // list.indexOf() ---->这个获取
//            System.out.println(list.indexOf(list.get(i)) + "-----" + list.get(i));
            System.out.println(i + "----" + list.get(i));
        }
    }
}
